<?php
/**
 * 配列のキーに存在するかのバリデータ
 *
 * @author tanaka
 * @package Validate
 * @subpackage InArrayKey
 */
class Validate_InArrayKey extends Zend_Validate_InArray
{
	/**
	 * Sets validator options
	 *
	 * @param  array|Zend_Config $haystack
	 * @return void
	 */
	public function __construct($options)
	{
		parent::__construct($options);

		$replaced = array();

		foreach ($this->_haystack as $key => $dummy) {
			$replaced[] = $key;
		}

		$this->_haystack = $replaced;
	}

	/**
	 * オーバーライドで再帰的な検証を有効にすることを禁止しています。
	 *
	 * @param  boolean $recursive
	 * @return Zend_Validate_InArray Provides a fluent interface
	 * @throws Zend_Validate_Exception
	 */
	public function setRecursive($recursive)
	{
		if((boolean) $recursive){
			throw new Zend_Validate_Exception(sprintf('class "%s" is not supported recursive', get_class($this)));
		}

		return $this;
	}
}
